HAL SMARTCARD constants migration

This section provides information about the HAL SMARTCARD constants migration .

HAL SMARTCARD error codes constants

HAL1

HAL2

In HAL1, error handling is performed using a set of macros that define various error states, including combined errors such as HAL_SMARTCARD_ERROR_DMA.

In HAL2, the error defines are reorganized and renamed.

  • The HAL_SMARTCARD_ERROR_DMA are split into separate transmit and receive error defines.

  • The HAL_SMARTCARD_ERROR_INVALID_CALLBACK is removed. for more details see HAL_SMARTCARD_GetError

  • The HAL_SMARTCARD_TRANSMIT_ERROR_NACK constant is added to detect transmission errors due to NACK.

#define HAL_SMARTCARD_ERROR_NONE
#define HAL_SMARTCARD_ERROR_PE
#define HAL_SMARTCARD_ERROR_NE
#define HAL_SMARTCARD_ERROR_FE
#define HAL_SMARTCARD_ERROR_ORE
#define HAL_SMARTCARD_ERROR_RTO
#define HAL_SMARTCARD_ERROR_DMA


#define HAL_SMARTCARD_ERROR_INVALID_CALLBACK
#define HAL_SMARTCARD_ERROR_NONE
#define HAL_SMARTCARD_RECEIVE_ERROR_PE
#define HAL_SMARTCARD_RECEIVE_ERROR_NE
#define HAL_SMARTCARD_RECEIVE_ERROR_FE
#define HAL_SMARTCARD_RECEIVE_ERROR_ORE
#define HAL_SMARTCARD_RECEIVE_ERROR_RTO
#define HAL_SMARTCARD_RECEIVE_ERROR_DMA
#define HAL_SMARTCARD_TRANSMIT_ERROR_DMA
#define HAL_SMARTCARD_TRANSMIT_ERROR_NACK

Related concept:


HAL SMARTCARD states constants

HAL1

HAL2



#define HAL_SMARTCARD_STATE_BUSY
#define HAL_SMARTCARD_STATE_BUSY_RX
#define HAL_SMARTCARD_STATE_BUSY_TX
#define HAL_SMARTCARD_STATE_BUSY_TX_RX
#define HAL_SMARTCARD_STATE_ERROR
#define HAL_SMARTCARD_STATE_READY
#define HAL_SMARTCARD_STATE_RESET
#define HAL_SMARTCARD_STATE_TIMEOUT
typedef enum
{
  HAL_SMARTCARD_STATE_RESET
  HAL_SMARTCARD_STATE_INIT
  HAL_SMARTCARD_STATE_IDLE
  HAL_SMARTCARD_STATE_RX_ACTIVE
  HAL_SMARTCARD_STATE_TX_ACTIVE
  HAL_SMARTCARD_STATE_ABORT
} hal_smartcard_state_t;

key changes

  • Renaming of several states.

  • Removal of the states HAL_SMARTCARD_STATE_TIMEOUT and HAL_SMARTCARD_STATE_ERROR.

  • Adding a new state HAL_SMARTCARD_STATE_ABORT

Related concept:


HAL SMARTCARD last bit control constants

HAL1

HAL2

#define SMARTCARD_LASTBIT_DISABLE
#define SMARTCARD_LASTBIT_ENABLE

Removed in HAL2 (Last Bit Control is enabled internally in all cases within the function HAL_SMARTCARD_SetConfig() as required by the Smartcard protocol).


HAL SMARTCARD NACK control constants

HAL1

HAL2



#define SMARTCARD_NACK_DISABLE
#define SMARTCARD_NACK_ENABLE
typedef enum
{
 HAL_SMARTCARD_NACK_DISABLE
 HAL_SMARTCARD_NACK_ENABLE
} hal_smartcard_nack_state_t

HAL SMARTCARD parity types constants

HAL1

HAL2



#define SMARTCARD_PARITY_EVEN
#define SMARTCARD_PARITY_ODD
typedef enum
{
  HAL_SMARTCARD_PARITY_ODD
  HAL_SMARTCARD_PARITY_EVEN
} hal_smartcard_parity_t;

HAL SMARTCARD clock phase options constants

HAL1

HAL2



#define SMARTCARD_PHASE_1EDGE
#define SMARTCARD_PHASE_2EDGE
typedef enum
{
  HAL_SMARTCARD_CLOCK_PHASE_1_EDGE
  HAL_SMARTCARD_CLOCK_PHASE_2_EDGE
} hal_smartcard_clock_phase_t;

HAL SMARTCARD clock polarity options constants

HAL1

HAL2



#define SMARTCARD_POLARITY_HIGH
#define SMARTCARD_POLARITY_LOW
typedef enum
{
  HAL_SMARTCARD_CLOCK_POLARITY_LOW
  HAL_SMARTCARD_CLOCK_POLARITY_HIGH
} hal_smartcard_clock_polarity_t;

HAL SMARTCARD clock prescaler constants

HAL1

HAL2



#define SMARTCARD_PRESCALER_DIV1
#define SMARTCARD_PRESCALER_DIV2
#define SMARTCARD_PRESCALER_DIV4
#define SMARTCARD_PRESCALER_DIV6
#define SMARTCARD_PRESCALER_DIV8
#define SMARTCARD_PRESCALER_DIV10
#define SMARTCARD_PRESCALER_DIV12
#define SMARTCARD_PRESCALER_DIV16
#define SMARTCARD_PRESCALER_DIV32
#define SMARTCARD_PRESCALER_DIV64
#define SMARTCARD_PRESCALER_DIV128
#define SMARTCARD_PRESCALER_DIV256
 typedef enum
{
  HAL_SMARTCARD_CLOCK_PRESC_DIV1
  HAL_SMARTCARD_CLOCK_PRESC_DIV2
  HAL_SMARTCARD_CLOCK_PRESC_DIV4
  HAL_SMARTCARD_CLOCK_PRESC_DIV6
  HAL_SMARTCARD_CLOCK_PRESC_DIV8
  HAL_SMARTCARD_CLOCK_PRESC_DIV10
  HAL_SMARTCARD_CLOCK_PRESC_DIV12
  HAL_SMARTCARD_CLOCK_PRESC_DIV16
  HAL_SMARTCARD_CLOCK_PRESC_DIV32
  HAL_SMARTCARD_CLOCK_PRESC_DIV64
  HAL_SMARTCARD_CLOCK_PRESC_DIV128
  HAL_SMARTCARD_CLOCK_PRESC_DIV256
} hal_smartcard_prescaler_t;

HAL SMARTCARD SYSCLK prescaler constants

HAL1

HAL2



#define SMARTCARD_PRESCALER_SYSCLK_DIV2
#define SMARTCARD_PRESCALER_SYSCLK_DIV4
#define SMARTCARD_PRESCALER_SYSCLK_DIV6
#define SMARTCARD_PRESCALER_SYSCLK_DIV8
#define SMARTCARD_PRESCALER_SYSCLK_DIV10
#define SMARTCARD_PRESCALER_SYSCLK_DIV12
#define SMARTCARD_PRESCALER_SYSCLK_DIV14
#define SMARTCARD_PRESCALER_SYSCLK_DIV16
#define SMARTCARD_PRESCALER_SYSCLK_DIV18
#define SMARTCARD_PRESCALER_SYSCLK_DIV20
#define SMARTCARD_PRESCALER_SYSCLK_DIV22
#define SMARTCARD_PRESCALER_SYSCLK_DIV24
#define SMARTCARD_PRESCALER_SYSCLK_DIV26
#define SMARTCARD_PRESCALER_SYSCLK_DIV28
#define SMARTCARD_PRESCALER_SYSCLK_DIV30
#define SMARTCARD_PRESCALER_SYSCLK_DIV32
#define SMARTCARD_PRESCALER_SYSCLK_DIV34
#define SMARTCARD_PRESCALER_SYSCLK_DIV36
#define SMARTCARD_PRESCALER_SYSCLK_DIV38
#define SMARTCARD_PRESCALER_SYSCLK_DIV40
#define SMARTCARD_PRESCALER_SYSCLK_DIV42
#define SMARTCARD_PRESCALER_SYSCLK_DIV44
#define SMARTCARD_PRESCALER_SYSCLK_DIV46
#define SMARTCARD_PRESCALER_SYSCLK_DIV48
#define SMARTCARD_PRESCALER_SYSCLK_DIV50
#define SMARTCARD_PRESCALER_SYSCLK_DIV52
#define SMARTCARD_PRESCALER_SYSCLK_DIV54
#define SMARTCARD_PRESCALER_SYSCLK_DIV56
#define SMARTCARD_PRESCALER_SYSCLK_DIV58
#define SMARTCARD_PRESCALER_SYSCLK_DIV60
#define SMARTCARD_PRESCALER_SYSCLK_DIV62
typedef enum
{
  HAL_SMARTCARD_SCLK_PRESC_DIV2
  HAL_SMARTCARD_SCLK_PRESC_DIV4
  HAL_SMARTCARD_SCLK_PRESC_DIV6
  HAL_SMARTCARD_SCLK_PRESC_DIV8
  HAL_SMARTCARD_SCLK_PRESC_DIV10
  HAL_SMARTCARD_SCLK_PRESC_DIV12
  HAL_SMARTCARD_SCLK_PRESC_DIV14
  HAL_SMARTCARD_SCLK_PRESC_DIV16
  HAL_SMARTCARD_SCLK_PRESC_DIV18
  HAL_SMARTCARD_SCLK_PRESC_DIV20
  HAL_SMARTCARD_SCLK_PRESC_DIV22
  HAL_SMARTCARD_SCLK_PRESC_DIV24
  HAL_SMARTCARD_SCLK_PRESC_DIV26
  HAL_SMARTCARD_SCLK_PRESC_DIV28
  HAL_SMARTCARD_SCLK_PRESC_DIV30
  HAL_SMARTCARD_SCLK_PRESC_DIV32
  HAL_SMARTCARD_SCLK_PRESC_DIV34
  HAL_SMARTCARD_SCLK_PRESC_DIV36
  HAL_SMARTCARD_SCLK_PRESC_DIV38
  HAL_SMARTCARD_SCLK_PRESC_DIV40
  HAL_SMARTCARD_SCLK_PRESC_DIV42
  HAL_SMARTCARD_SCLK_PRESC_DIV44
  HAL_SMARTCARD_SCLK_PRESC_DIV46
  HAL_SMARTCARD_SCLK_PRESC_DIV48
  HAL_SMARTCARD_SCLK_PRESC_DIV50
  HAL_SMARTCARD_SCLK_PRESC_DIV52
  HAL_SMARTCARD_SCLK_PRESC_DIV54
  HAL_SMARTCARD_SCLK_PRESC_DIV56
  HAL_SMARTCARD_SCLK_PRESC_DIV58
  HAL_SMARTCARD_SCLK_PRESC_DIV60
  HAL_SMARTCARD_SCLK_PRESC_DIV62
} hal_smartcard_source_clock_prescaler_t

HAL SMARTCARD stop bits options constants

HAL1

HAL2



#define SMARTCARD_STOPBITS_0_5
#define SMARTCARD_STOPBITS_1_5
typedef enum
{
  HAL_SMARTCARD_STOP_BIT_0_5
  HAL_SMARTCARD_STOP_BIT_1_5
} hal_smartcard_stop_bits_t;

HAL SMARTCARD timeout control constants

HAL1

HAL2


#define SMARTCARD_TIMEOUT_ENABLE

#define SMARTCARD_TIMEOUT_DISABLE

Removed; use the following functions to manage the Timeout control:

HAL_SMARTCARD_EnableReceiverTimeout(const hal_smartcard_handle_t *hsmartcard)

HAL_SMARTCARD_DisableReceiverTimeout(const hal_smartcard_handle_t *hsmartcard)

Note

The SMARTCARD timeout value can be set using the function: HAL_SMARTCARD_SetReceiverTimeout(const hal_smartcard_handle_t *hsmartcard, uint32_t timeout)


HAL SMARTCARD data flush request constants

HAL1

HAL2

#define SMARTCARD_RXDATA_FLUSH_REQUEST
#define SMARTCARD_TXDATA_FLUSH_REQUEST

Removed; these constants have been used internally in HAL1 and do not impact user-level operations.


HAL SMARTCARD mode types constants

HAL1

HAL2

#define SMARTCARD_MODE_RX
#define SMARTCARD_MODE_TX
#define SMARTCARD_MODE_TX_RX

The mode configuration is removed and managed dynamically by the transmit and receive APIs.


HAL SMARTCARD word length options

HAL1

HAL2

#define SMARTCARD_WORDLENGTH_9B

The word length option is removed in HAL2 since there is only one possible configuration (9 bits with parity).


HAL SMARTCARD one bit sample constants

HAL1

HAL2

#define SMARTCARD_ONE_BIT_SAMPLE_ENABLE
#define SMARTCARD_ONE_BIT_SAMPLE_DISABLE

Removed as it is not applicable for the SMARTCARD protocol.


HAL SMARTCARD advanced features

HAL SMARTCARD advanced feature initialization constants

HAL1

HAL2

#define SMARTCARD_ADVFEATURE_NO_INIT
#define SMARTCARD_ADVFEATURE_DATAINVERT_INIT
#define SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT
#define SMARTCARD_ADVFEATURE_RXINVERT_INIT
#define SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT
#define SMARTCARD_ADVFEATURE_TXINVERT_INIT
#define SMARTCARD_ADVFEATURE_SWAP_INIT
#define SMARTCARD_ADVFEATURE_MSBFIRST_INIT
#define SMARTCARD_ADVFEATURE_TXCOMPLETION

These constants have been removed because the structure SMARTCARD_AdvFeatureInitTypeDef which used them in HAL1, has itself been removed.

Each advanced feature is now configured and controlled through dedicated functions, enabling direct management of these features without relying on the former structure.


Note

  • In HAL2, the advanced MSB First feature is incorporated into the smartcard configuration structure hal_smartcard_config_t through the first_bit parameter.

  • The advanced RX inversion feature is removed as only one line is used for both transmission (TX) and reception (RX).


HAL SMARTCARD advanced feature data inversion constants

HAL1

HAL2


#define SMARTCARD_ADVFEATURE_DATAINV_ENABLE

#define SMARTCARD_ADVFEATURE_DATAINV_DISABLE

Removed; use the following functions to manage data inversion mode:

HAL_SMARTCARD_EnableDataInvert(const hal_smartcard_handle_t *hsmartcard)

HAL_SMARTCARD_DisableDataInvert(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD advanced feature DMA options constants

HAL1

HAL2


#define  SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR

#define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR

Removed; use the following functions to manage the DMA error mode:

hal_status_t HAL_SMARTCARD_EnableDMAStopOnRxError(const hal_smartcard_handle_t *hsmartcard)

hal_status_t HAL_SMARTCARD_DisableDMAStopOnRxError(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD advanced feature overrun control constants

HAL1

HAL2


#define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE

#define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE

Removed; use the following functions to manage the overrun detect mode:

hal_status_t HAL_SMARTCARD_EnableRxOverRunDetection(const hal_smartcard_handle_t *hsmartcard)

hal_status_t HAL_SMARTCARD_DisableRxOverRunDetection(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD advanced feature swap options constants

HAL1

HAL2


#define SMARTCARD_ADVFEATURE_SWAP_ENABLE

#define SMARTCARD_ADVFEATURE_SWAP_DISABLE

Removed; use the following functions to manage swap mode:

hal_status_t HAL_SMARTCARD_EnableTxRxSwap(const hal_smartcard_handle_t *hsmartcard)

hal_status_t HAL_SMARTCARD_DisableTxRxSwap(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD advanced feature TX inversion constants

HAL1

HAL2


#define SMARTCARD_ADVFEATURE_TXINV_ENABLE

#define SMARTCARD_ADVFEATURE_TXINV_DISABLE

Removed; use the following functions to manage TX pin inversion mode:

hal_status_t HAL_SMARTCARD_EnableIOInvert(const hal_smartcard_handle_t *hsmartcard)

hal_status_t HAL_SMARTCARD_DisableIOInvert(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD advanced feature RX inversion constants

HAL1

HAL2

#define SMARTCARD_ADVFEATURE_RXINV_DISABLE
#define SMARTCARD_ADVFEATURE_RXINV_ENABLE

Removed; only one line is used for both transmission (TX) and reception (RX)


HAL SMARTCARD advanced feature MSB first options constants

HAL1

HAL2



#define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE
#define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE
typedef enum
{
  HAL_SMARTCARD_BIT_ORDER_LSB_FIRST
  HAL_SMARTCARD_BIT_ORDER_MSB_FIRST
} hal_smartcard_bit_order_t ;

HAL SMARTCARD advanced feature transmission complete flags constants

HAL1

HAL2


#define SMARTCARD_TC

#define SMARTCARD_TCBGT

Removed; use the following functions to manage the Transmission Complete Flags:

HAL_SMARTCARD_SetTxCpltIndication(&hsmartcard,
                                  HAL_SMARTCARD_TX_CPLT_AFTER_GUARD_TIME)
HAL_SMARTCARD_SetTxCpltIndication(&hsmartcard,
                                  HAL_SMARTCARD_TX_CPLT_BEFORE_GUARD_TIME)

HAL SMARTCARD FIFO mode control constants

HAL1

HAL2


#define SMARTCARD_FIFOMODE_ENABLE

#define SMARTCARD_FIFOMODE_DISABLE

Removed; use the following functions to manage the FIFO mode:

hal_status_t HAL_SMARTCARD_EnableFifoMode(const hal_smartcard_handle_t *hsmartcard)

hal_status_t HAL_SMARTCARD_DisableFifoMode(const hal_smartcard_handle_t *hsmartcard)

HAL SMARTCARD FIFO threshold levels constants

In HAL2, SMARTCARD FIFO thresholds for TX and RX are merged and defined using an enumeration type, hal_smartcard_fifo_threshold_t.

HAL1

HAL2



#define SMARTCARD_TXFIFO_THRESHOLD_1_2
#define SMARTCARD_TXFIFO_THRESHOLD_1_4
#define SMARTCARD_TXFIFO_THRESHOLD_1_8
#define SMARTCARD_TXFIFO_THRESHOLD_3_4
#define SMARTCARD_TXFIFO_THRESHOLD_7_8
#define SMARTCARD_TXFIFO_THRESHOLD_8_8

#define SMARTCARD_RXFIFO_THRESHOLD_1_2
#define SMARTCARD_RXFIFO_THRESHOLD_1_4
#define SMARTCARD_RXFIFO_THRESHOLD_1_8
#define SMARTCARD_RXFIFO_THRESHOLD_3_4
#define SMARTCARD_RXFIFO_THRESHOLD_7_8
#define SMARTCARD_RXFIFO_THRESHOLD_8_8
typedef enum
{
  HAL_SMARTCARD_FIFO_THRESHOLD_1_8
  HAL_SMARTCARD_FIFO_THRESHOLD_1_4
  HAL_SMARTCARD_FIFO_THRESHOLD_1_2
  HAL_SMARTCARD_FIFO_THRESHOLD_3_4
  HAL_SMARTCARD_FIFO_THRESHOLD_7_8
  HAL_SMARTCARD_FIFO_THRESHOLD_8_8
} hal_smartcard_fifo_threshold_t;

HAL SMARTCARD interrupt types constants

HAL1

HAL2

#define SMARTCARD_IT_EOB
#define SMARTCARD_IT_ERR
#define SMARTCARD_IT_FE
#define SMARTCARD_IT_IDLE
#define SMARTCARD_IT_MASK
#define SMARTCARD_IT_NE
#define SMARTCARD_IT_ORE
#define SMARTCARD_IT_PE
#define SMARTCARD_IT_RTO
#define SMARTCARD_IT_RXFF
#define SMARTCARD_IT_RXFNE
#define SMARTCARD_IT_RXFT
#define SMARTCARD_IT_RXNE
#define SMARTCARD_IT_TC
#define SMARTCARD_IT_TCBGT
#define SMARTCARD_IT_TXE
#define SMARTCARD_IT_TXFE
#define SMARTCARD_IT_TXFNF
#define SMARTCARD_IT_TXFT

HAL SMARTCARD clear flags constants

HAL1

HAL2

#define SMARTCARD_CLEAR_EOBF
#define SMARTCARD_CLEAR_FEF
#define SMARTCARD_CLEAR_IDLEF
#define SMARTCARD_CLEAR_NEF
#define SMARTCARD_CLEAR_OREF
#define SMARTCARD_CLEAR_PEF
#define SMARTCARD_CLEAR_RTOF
#define SMARTCARD_CLEAR_TCBGTF
#define SMARTCARD_CLEAR_TCF
#define SMARTCARD_CLEAR_TXFECF
  • In HAL1, those defines have been used by the __HAL_SMARTCARD_CLEAR_FLAG() and __HAL_SMARTCARD_CLEAR_IT() macros.

  • In HAL2, these defines and macros have been removed, use LL_USART_ClearFlag() instead with the appropriate parameters.

  • For more details, refer to:


HAL SMARTCARD status flags constants

HAL1

HAL2

#define SMARTCARD_FLAG_BUSY
#define SMARTCARD_FLAG_EOBF
#define SMARTCARD_FLAG_FE
#define SMARTCARD_FLAG_IDLE
#define SMARTCARD_FLAG_NE
#define SMARTCARD_FLAG_ORE
#define SMARTCARD_FLAG_PE
#define SMARTCARD_FLAG_REACK
#define SMARTCARD_FLAG_RTOF
#define SMARTCARD_FLAG_RXFF
#define SMARTCARD_FLAG_RXFNE
#define SMARTCARD_FLAG_RXFT
#define SMARTCARD_FLAG_RXNE
#define SMARTCARD_FLAG_TC
#define SMARTCARD_FLAG_TCBGT
#define SMARTCARD_FLAG_TEACK
#define SMARTCARD_FLAG_TXE
#define SMARTCARD_FLAG_TXFE
#define SMARTCARD_FLAG_TXFNF
#define SMARTCARD_FLAG_TXFT
  • In HAL1, those defines have been used by the __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) macro.

  • In HAL2, these defines and macros have been removed, use LL_USART_IsActiveFlag() instead with the appropriate parameters.

  • For more details, refer to:


HAL SMARTCARD DMA request types constants

HAL1

HAL2

#define SMARTCARD_DMAREQ_RX
#define SMARTCARD_DMAREQ_TX
  • In HAL1, those defines have been used by the __HAL_SMARTCARD_DMA_REQUEST_ENABLE() and __HAL_SMARTCARD_DMA_REQUEST_DISABLE() macro.

  • In HAL2, these defines and macros have been removed, use LL_USART_EnableDMAReq_TX/RX() and LL_USART_DisableDMAReq_TX/RX() and instead with the appropriate parameters.

  • For more details, refer to:


HAL SMARTCARD masks and positions constants

HAL1

HAL2

#define SMARTCARD_CR_MASK
#define SMARTCARD_CR_POS
#define SMARTCARD_ISR_MASK
#define SMARTCARD_ISR_POS

Removed; these constants have been used internally in HAL1 and do not impact user-level operations.